package com.zang.tree;

/**
 * @author ZVerify
 * @since 2022/11/01 15:42
 * @see <a href="https://leetcode.cn/problems/validate-binary-search-tree/">...</a>
 **/
public class 验证二叉搜索树 {

    long val = Long.MIN_VALUE;
    public boolean isValidBST(TreeNode root) {

        return process(root);
    }

    // 中序遍历
    private boolean process(TreeNode root) {
        // 为null则为true
        if (root==null) return true;
        // 左边
        boolean left = process(root.left);
        // 看当前节点的值有没有前边的值大
        if (root.val<=val) return false;
        // 替换节点
        val = root.val;
        // 右边
        boolean right = process(root.right);
        // 左右都是才是
        return left && right;
    }

}
